import os
from PIL import Image

# 图片集文件夹名
dir_path = input('input dir_path:\n')
# 图片集文件夹路径
file_path = f'D:\\考研\\{dir_path}'


def func(e):
    """
    排序函数, 下面sort函数调用的
    :param e: file_name
    :return: 题号
    """
    begin = e.find('第') + 1
    end = e.find('题')
    return int(e[begin: end])


# 获取输入文件夹下所有的文件
file_names = os.listdir(file_path)
# 对文件名对题号进行升序排序
file_names.sort(key=func)
try:
    # 读文件
    output = Image.open(file_path + '\\' + file_names[0]).convert('RGB')
    # 将第一个文件删除, 防止重复
    file_names.pop(0)
    # 除第一个文件以外的所有Image实例集
    sources = []
    for file_name in file_names:
        if 'jpg' in file_name:
            file = Image.open(file_path + '\\' + file_name).convert('RGB')
            sources.append(file)
    # 存到与输入文件夹同级的文件夹中, 文件名为输入文件夹名
    output.save(f'D:\\考研\\{dir_path}.pdf', 'pdf', save_all=True, append_images=sources)
except OSError or ValueError as e:
    print(e)

